1). Field of the Invention
This invention relates to a method and graphical user interface for displaying errors associated with the development or deployment of a software application.
2). Discussion of Related Art
Classfiles in Object Oriented Environments
Certain software technologies, including Java, are “object oriented.” According to an object oriented approach, the subject matter that is processed by a computer program is organized into classes of likeness. For example, the software used to sell items to customer X might belong to the same class of software (e.g., a class named “sales”) that is used to sell items to customer Y. Here, given that a significant degree of overlap is expected to exist regarding the methods and data types used to process sales for both customers X and Y (e.g., an “update billing about sale” method, an “update accounting about sale” method, a “part number” data type, a “quantity” data type . . . etc.) it is deemed more efficient to organize such methods and data types into a generic “sales” class from which specific instances of the class (e.g., an instance for selling to customer X and an instance for selling to customer Y) can be defined and created.
Each specific instance of a class is referred to as an object, and each object assumes, or inherits, the characteristics of the class from which it is defined. The characteristics of a class may be referred to as items within the class or particular syntaxes written into the software code. Thus, a first object could be created from the generic sales class to create a “sell to customer X” object; and, a second object could be created from the generic sales class to create a “sell to customer Y” object. Both objects would be able to execute the methods defined by the class. For example, the “sell to customer X” object could execute the “update accounting about sale” method to update an accounting department about a sale to customer X; and, the “sell to customer Y” object could also execute the “update accounting about sale” method to update an accounting department about a sale to customer Y.
In general, the runtime execution of any computer program can be viewed as the execution of a sequence of methods. With respect to an object-oriented approach, such a sequence of methods can be implemented by calling upon a sequence of objects and invoking one or more methods at each object. In order to invoke the method of an object, a representation of the object is typically created beforehand. In virtual machine-based object-oriented software environments, classfiles are bytecode level data structures from which such representations are created. A classfile can be viewed as a bytecode level description of a class; and, therefore, a classfile can be used as a template for the formation of an object, at the bytecode level, that is a member of the class. As specific methods can be attributed to specific classes, each classfile is made to contain the sequence of bytecode instructions that correspond to each of the class's specific methods.
Component Based Architectures
Component based software environments use granules of software (referred to as “components” or “component instances”) to perform basic functions. The components themselves typically comprise one or more software objects. Some examples of component based architectures include Java Beans (JB), Enterprise Java Beans (EJB), Common Object Request Broker Architecture (CORBA), Component Object Model (COM), Distributed Component Object Model (DCOM) and derivatives there from.
The functional granularity offered by a plurality of different components provides a platform for developing a multitude of more comprehensive tasks. For example, a business application that graphically presents the results of calculations made to an individual's financial records (e.g., amortization of interest payments, growth in income, etc.) may be created by logically stringing together: 1) an instance of a first component that retrieves an individual's financial records from a database; 2) an instance of a second component that performs calculations upon financial records; and, 3) an instance of a third component that graphically presents financial information.
Moreover, within the same environment, another business application that only graphically presents an individual's existing financial records may be created by logically stringing together: 1) another instance of the first component mentioned just above; and, 2) another instance of the third component mentioned above. That is, different instances of the same component may be used to construct different applications. The number of components within a particular environment and the specific function(s) of each of the components within the environment are determined by the developers of the environment.
Components may also be created to represent separate instances of persistent data (e.g., a first component that represents a first row of database information, a second component that represents a second row of database information, etc.), and text pages or servlets for web based invocation of specific business methods.
Development Issues
In a Java environment, “deployment descriptors” are used, among other things, to facilitate the interaction between different components so that the components themselves need not be changed to call upon or use other components. The deployment descriptors include what are known as “references.” The references indicate how one component will interact with another component using interfaces on the components.
When an application is assembled, certain information must be put into the deployment descriptors. For example, setting the deployment descriptors with the “main” class files of the components. For example, a bean always has a bean class, which holds the implementation of the bean's interfaces (local and remote), which are used for communication with other components. If the wrong class file is specified, or a class file that does not actually exist is specified, the software application cannot not be built.
FIG. 1 illustrates a prior art graphical user interface (GUI) 30 used in the deployment (or development) of a component based software applications. The GUI 30 includes utility pull down menus 32, utility buttons 34, and tabs 34. Within the displayed tab 36 are a component window 38 and a component information window 40. The component information window 40 includes a component name indicator 42, a remote interface field 44, home interface field 46, a component class field 48, a primary key class field 50, a primary key field 52, a reentrant indicator 54, and a persistent management indicator 56.
If the user wished to verify, or enter, the name of a class file used to create a particular instance of a particular component (e.g., its interface), he or she had to manually type the name of the class file into the appropriate field. The GUI responded positively only if the typed name was “correct.” Because the names of the class files can be very long and confusing, often the developer would type in an incorrect name, and the GUI would not provide any information as to what the correct name was.